The present invention relates generally to computer systems and more particularly to computers having a minor operating system that runs under a main operating system and the processing executed under the environment of the minor operating system does data I/O with peripheral equipment controlled by the main operating system.
UNIX operating systems for personal computers has recently begun to appear in the American market. The IBM model AT and other 80386 based machines, such as from COMPAQ have been selling and will support UNIX. In particular, the AT&T System V Release 4 (or 3.2) UNIX runs on 386-based personal computers.
But only a very few application programs will run directly under UNIX. Whereas thousands of programs are compatible with the original MS-DOS operating system offered by IBM and Microsoft. So utilities that enable MS-DOS applications to run under UNIX begun to appear. Called "DOS BOX," MERGE 386 by Locus Computing and VP/IX by Interactive Systems and Phoenix Technologies. In a conventional DOS BOX, when an I/O command is generated by an MS-DOS application program, the activity is detected by a UNIX device driver. An emulation is then engaged to satisfy the MS-DOS device driver. In such cases, the time to do an I/O can be very long. For example, see Japanese Laid Open Patent 62-78631 (Apr. 10, 1987). Eliminating such emulations of peripherals would speed up the overall system.
Peripherals in prior art computer systems are typically under the control of a single, main operating system. Application programs run under the main operating system and transfer data with peripherals via device drivers provided by the main operating system. Minor operating systems emulate device drivers.
A keyboard, when operated, will usually trigger an input interrupt handler in a main operating system. Data is input and interpreted before being temporarily stored. The occurrence of such an input event and the stored input string will be messaged to a minor operating system as dummy interrupts, which activates an input interrupt handler. The minor operating system interprets the messages from the main operating system, and transfers the input type to an input buffer in a memory. Interrupt handlers therefore enable both the main operating system and minor operating system to accept keyboard and/or application program input.
But overlapping input interpretations in both operating systems creates an undesirable processing overhead. The system response to input and output can be very slow for application programs running under a minor operating system, so real time performance is sacrificed.